SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE VIEW dbo.vw_POFPaquetes
AS
SELECT distinct sa.idServicioAgente, sa.Horas, Sa.CargoSalarial, P.CUPOF, 
	ISNULL(P2.CUPOF, 'Sin Madre') PlazaMadre, 
	CASE WHEN P2.CUPOF IS NULL AND PP.TipoPaquete IS NOT NULL THEN TP.Mnemo 
		 WHEN P2.CUPOF = P.CUPOF THEN TP.Mnemo
		 WHEN P2.CUPOF IS NOT NULL THEN TP.Mnemo ELSE NULL  END TipoDePaquete, 
	P.NroSecuencia, P.FechaAlta, 
	P.FechaBaja, O.Nombre Organizacion, 
	so.Descripcion subOrganizacion, 
	CASE WHEN p2.cupof IS NULL THEN p.cuise 
		WHEN p2.cupof IS NOT NULL THEN p2.cuise END CUISE, 
	a.Nombres Agente, a.Documento, 
	l.Descripcion Licencia, sr.Mnemo SR, sl.Mnemo SL, 
	LS.Localidad LocalidadSubOrg,
	se.Mnemo SE, AutoridadPOF
FROM tb_Plazas P 
INNER JOIN  tb_Organizaciones O ON O.idOrganizaciones = P.Organizacion 
INNER JOIN  tb_Suborganizaciones SO ON  p.SubOrganizacion = so.IdSubOrganizacion 
INNER JOIN tb_Localidades LS ON LS.idLocalidad = SO.Localidad
INNER JOIN  tb_Subserviciosagentes ssa ON ssa.plaza = p.IdPlaza 
INNER JOIN  tb_Serviciosagentes sa ON sa.IdServicioagente = ssa.Servicioagente 
INNER JOIN  tb_Agentes a ON a.IdAgente = sa.Agente 
LEFT OUTER JOIN tb_Licencias l ON l.IdLicencia = ssa.licencia 
INNER JOIN  tb_SituacionRevista sr ON sr.IdSituacionRevista = sa.SituacionRevista 
INNER JOIN  tb_SituacionesLaborales sl ON sl.IdSituacionLaboral = ssa.SituacionLaboral 
INNER JOIN  tb_SituacionesExtraordinarias se ON se.IdSituacionExtraordinaria = ssa.SituacionExtraordinaria 
LEFT OUTER JOIN tb_PaquetesDePlazas PP ON PP.IdPaquete = P.Paquete 
LEFT OUTER JOIN tb_TiposDePaquete TP ON TP.IdTipoPaquete = PP.TipoPaquete 
LEFT OUTER JOIN tb_Plazas P2 ON p2.IdPlaza = PP.PlazaMadre 
WHERE (ssa.Baja = 'N') AND P.IdPlaza NOT IN
        (SELECT PlazaMadre
      FROM tb_PaquetesDePlazas) --and ((Select Modo FROM vw_UsuarioModo) = 1) OR ((Select Modo FROM vw_UsuarioModo) = 2) AND (p.cuise = (SELECT Cuise FROM vw_UsuarioCuise))

UNION

SELECT distinct sa.idServicioAgente, sa.Horas, sa.CargoSalarial, p.CUPOF, 
    'Sin madre', TP.Mnemo TipoDePaquete, p.NroSecuencia, 
    p.FechaAlta, p.FechaBaja, o.Nombre Organizacion, 
    so.Descripcion subOrganizacion, P.cuise CUISE, 
    a.Nombres Agente, a.Documento, l.Descripcion Licencia, 
    sr.Mnemo SR, sl.Mnemo SL, se.Mnemo SE, 
    LS.Localidad LocalidadSubOrg,
    AutoridadPOF
FROM tb_Plazas p 
INNER JOIN tb_Organizaciones o ON idOrganizaciones = p.Organizacion 
INNER JOIN tb_Suborganizaciones SO ON so.Idsuborganizacion = p.Suborganizacion 
INNER JOIN tb_Localidades LS ON LS.idLocalidad = SO.Localidad
INNER JOIN tb_Subserviciosagentes ssa ON ssa.plaza = p.IdPlaza 
INNER JOIN tb_Serviciosagentes sa ON sa.IdServicioagente = ssa.Servicioagente 
INNER JOIN tb_Agentes a ON a.IdAgente = sa.Agente 
LEFT OUTER JOIN tb_Licencias l ON l.IdLicencia = ssa.licencia 
INNER JOIN tb_SituacionRevista sr ON sr.IdSituacionRevista = sa.SituacionRevista 
INNER JOIN tb_SituacionesLaborales sl ON sl.IdSituacionLaboral = ssa.SituacionLaboral 
INNER JOIN tb_SituacionesExtraordinarias se ON se.IdSituacionExtraordinaria = ssa.SituacionExtraordinaria 
LEFT OUTER JOIN tb_PaquetesDePlazas PP ON PP.IdPaquete = P.Paquete 
LEFT OUTER JOIN tb_TiposDePaquete TP ON TP.IdTipoPaquete = PP.TipoPaquete 
LEFT OUTER JOIN tb_Plazas P2 ON p2.IdPlaza = PP.PlazaMadre
WHERE (ssa.Baja = 'N') AND (p.paquete IS NULL OR
    (p.paquete IS NOT NULL AND p.Cupof <> p2.Cupof)) --and((Select Modo FROM vw_UsuarioModo) = 1) OR ((Select Modo FROM vw_UsuarioModo) = 2) AND (p.cuise = (SELECT Cuise FROM vw_UsuarioCuise))

UNION --AGREGADO nuevo

SELECT distinct 0, p.Horas, p.CargoSalarialDefault, p.CUPOF, 
     'Sin Madre' PlazaMadre, 
     null, p.NroSecuencia, p.FechaAlta, 
    p.FechaBaja, o.Nombre Organizacion, 
    SO.Descripcion subOrganizacion, 
    o.cuise  CUISE, 'Vacante'  Agente, 0, 
    '--' Licencia, '--' SR, '--'  SL, 
    '--' SE,  LS.Localidad LocalidadSubOrg, AutoridadPOF
FROM tb_Plazas p 
INNER JOIN tb_Organizaciones o ON idOrganizaciones = p.Organizacion 
INNER JOIN tb_Suborganizaciones so ON p.SubOrganizacion = so.IdSubOrganizacion
INNER JOIN tb_Localidades LS ON LS.idLocalidad = SO.Localidad
WHERE (P.Baja = 'N') AND P.IdPlaza NOT IN
        (SELECT plaza  FROM TB_SUBSERVICIOSAGENTES SSA WHERE SSA.BAJA='N' ) -- and((Select Modo FROM vw_UsuarioModo) = 1) OR ((Select Modo FROM vw_UsuarioModo) = 2) AND (p.cuise = (SELECT Cuise FROM vw_UsuarioCuise))



















GO
GRANT SELECT ON  [dbo].[vw_POFPaquetes] TO [SoloVer]
GO
